﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using BOL;
using DAL;
using System.Web.UI.WebControls;

namespace UILGestion.ObraAdmin.Chart
{
    public partial class Obra001Chart : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                
            }
        }

        public void LoadChart(int idObra)
        {
            //soles
            //string totalPrespuesto = "S/. 0";
            //string totalEC = "S/. 0";
            //string totalUso = "S/. 0";

            decimal totalPrespuesto = 0;
            decimal totalEC =0;
            decimal totalUso = 0;

            decimal ObraTC = DbUtil.Db.Obras.Single(p => p.idInternal == idObra).tipoCambio.Value;

            var q= from a in DbUtil.Db.Presupuesto
                    where a.idObra == idObra
                    select a;

            var w = from b in DbUtil.Db.EstructuraCostos
                    where b.idObra == idObra
                    select b;

            if (q.Count() > 0)
            {
                totalPrespuesto = 0;
                //totalPrespuesto = String.Format("S/. {0:N}", q.Sum(p => p.monto * p.tipoCambio).Value);
                decimal? soles=q.Where(p=>p.idMoneda==3).Sum(p => p.monto );
                if (soles.HasValue)
                    totalPrespuesto = soles.Value;
                decimal? dolares = q.Where(p => p.idMoneda == 4).Sum(p => p.monto * ObraTC);
                if (dolares.HasValue)
                    totalPrespuesto = totalPrespuesto+dolares.Value;

                
            }
            if (w.Count() > 0)
            {
                //siempre se encuertra en soles
                //totalEC = String.Format("S/. {0:N}", w.Sum(p => p.monto ).Value);
                //totalUso = String.Format("S/. {0:N}", w.Sum(p => p.montoUso).Value);
                totalEC =  w.Sum(p => p.monto ).Value;
                totalUso = w.Sum(p => p.montoUso).Value;
            }
            

            ObraChart.Titles[0].Text = String.Format("TOTAL CONSUMO OBRA (S/.) TP:{0:N3}", ObraTC); 
            ObraChart.Series[0].Points[0].YValues[0]=Convert.ToDouble(totalPrespuesto);
            ObraChart.Series[0].Points[0].LabelFormat = "{0:N}";
            ObraChart.Series[0].Points[1].YValues[0] = Convert.ToDouble(totalEC);
            ObraChart.Series[0].Points[1].LabelFormat = "{0:N}";
            ObraChart.Series[0].Points[2].YValues[0] = Convert.ToDouble(totalUso);
            ObraChart.Series[0].Points[2].LabelFormat = "{0:N}";
            //carga de grafico
            // Set series font




        }
    }
}